package com.xbstar.wei.service2;

import java.util.HashMap;

import javax.servlet.http.HttpServletRequest;

import org.json.JSONException;
import org.json.JSONObject;

public class UserUtil {
	/**
	 * userList<openid,userName>
	 */
	private static HashMap<String, String>userList;
	/**
	 * 判断是否存在openid用户
	 * @param openid
	 * @return 若存在则返回true，否则返回false
	 */
	public static boolean userIsCheckedOpenid(String openid) {
		if (userList==null) {
			userList=new HashMap<String, String>();
			return false;
		}else {
			String user="0";
			try {
				user=userList.get(openid);
				
			} catch (Exception e) {//如果不存在则创建
				userList.put(openid, "0");
				return false;
			}
			if (user==null) {
				return false;
			}
			return !user.equals("0");
		}
		
	}
	/**
	 * 判断用户名和密码是否正确
	 * @param user 用户名
	 * @param passwd 密码
	 * @return 真假
	 */
	public static boolean isRightUserAndPwd(String user, String passwd) {
		if (user.equals("jwf")&&passwd.equals("123")||user.equals("xbstar")&&passwd.equals("123")) {
			return true;
		}else {
			return false;
		}
		
		
	}
	/**
	 * 通过code换取openid
	 * @param code
	 * @return  成功返回openid，否则null
	 */
	public static String getOpenIdByAuthorCode(String code) {
		if (code==null||code.equals("")) {
			System.out.println("传入的code值为空或者为null");
			return null;
		}
		String url=WeiURL.getSnsapi_baseUrlByCode(code);
		String openIdStr=null;
		try {
			JSONObject object=WeixinUtil.send2WeiByGetMethod(url);
			openIdStr=object.getString(Message.Access_Token.Openid);
			System.out.println("获得的用户openid是："+openIdStr);
			return openIdStr;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
	/**
	 * 根据用户名判断是否已经绑定了
	 * @param user 用户名
	 * @return
	 */
	private static boolean userCheckedUserName(String user) {
		if (userList!=null&&userList.containsValue(user)) {
			return true;
		}
		return false;
	}
	/**
	 * 判断是否存在openid用户
	 * @param openid
	 * @return
	 */
	@Deprecated
	public static boolean userIsChecked(String openid) {
		if (userList==null) {
			userList=new HashMap<String, String>();
			return false;
		}else {
			String user="0";
			try {
				user=userList.get(openid);
				
			} catch (Exception e) {//如果不存在则创建
				userList.put(openid, "0");
				return false;
			}
			if (user==null) {
				return false;
			}
			return !user.equals("0");
		}
		
	}
	/**
	 * 判断是已经绑定了微信号码或者用户名称
	 * @param openId 微信唯一号码
	 * @param user 用户名
	 * @return
	 */
	public static boolean IsWhetherCheakedUserOrOpenId(String openId,
			String user) {
		if (openId!=null&&user!=null&&!openId.equals("")&&!user.equals("")) {
			return userIsCheckedOpenid(openId)&&userCheckedUserName(user);
		}else {
			return false;
		}
		
	}
	/**
	 * 新增用户与微信的绑定关系
	 * @param user 用户名
	 * @param openId 密码
	 */
	public static void addRelationUserAndOpenid(String user, String openId) {
		if (userList==null) {
			userList=new HashMap<String, String>();
		}
		userList.put(openId, user);
	}
	/**
	 * 
	 * 用微信公众号注册
	 * @param request 用户传过来的servlet
	 * @return 注册成功返回true，错误报错
	 * @throws Exception 注册用户失败则报错或者获取用户信息失败
	 * 
	 */
	public boolean resignUserByOpenidFromRequest(HttpServletRequest request) throws Exception {
		throw new Exception();
	}

}
